package com.bt.mapper;

import com.bt.dto.SysUserPageQueryDTO;
import com.bt.entity.SysRoleMenu;
import com.bt.entity.SysUser;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Description TODO
 * @Author 青
 * @Date 2023-04-28 22:20
 */
@Mapper
public interface SysUserMapper {
    /**
     * 用户登录
     *
     * @param loginName
     * @return
     */
    @Select("select * from sys_user where login_name =#{loginName}")
    SysUser getByUserName(String loginName);

    /**
     * 统计管理员总数
     *
     * @return
     */
    @Select("select COUNT(*) from sys_user")
    Integer countAdminNum();


    /**
     * 根据用户id查询用户数据
     *
     * @param currentStringId
     * @return
     */
    @Select("select * from sys_user where id= #{currentStringId}")
    SysUser findById(String currentStringId);

    /**
     * 根据roleId查找用户表数据
     * @param roleId
     * @return
     */
    List<SysUser> getById(String roleId);

    /**
     * 管理员管理分页查询
     *
     * @return
     */
    List<SysUser> page(String loginName, Integer status, String phone);


    /**
     * 管理员删除
     * @param id
     */
    @Delete("delete  from sys_user where id = #{id}")
    void deteleById(String id);

    /**
     *新增分类
     * @param sysUser
     */
    void insert(SysUser sysUser);

    /**
     * 批量添加角色数据
     * @param menus
     */
    void addBatch(@Param("menus") List<SysRoleMenu> menus);

    /**
     * 根据id查询管理员回显接口
     * @param id
     * @return
     */
    @Select("select * from sys_user where id = #{id}")
    SysUser findId(String id);

    /**
     * 修改管理员信息
     * @param sysUser
     */
    void update(SysUser sysUser);
    @Select("select role_id from sys_user where id =#{id}")
    List findRoleId();

    /**
     * 添加管理员
     * @param sysUser
     */
    void add(SysUser sysUser);
}
